package com.scvtc.domain.entity.student;

import com.baomidou.mybatisplus.annotation.FieldFill;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableId;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonIgnore;
import com.fasterxml.jackson.annotation.JsonInclude;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.experimental.Accessors;
import lombok.*;
import org.springframework.format.annotation.DateTimeFormat;

import java.io.Serializable;
import java.util.Date;

/**
 * 学生获奖信息(StudentAwards)类
 *
 * @author yiFei
 * @since 2022-04-13 17:38:27
 */
@Data
@Builder
@EqualsAndHashCode(callSuper = false)
@AllArgsConstructor
@NoArgsConstructor
@Accessors(chain = true)
@ApiModel("学生获奖信息")
@TableName("student_awards")
@JsonInclude(JsonInclude.Include.NON_NULL)
public class StudentAwards implements Serializable {

    private static final long serialVersionUID = 492734496104614718L;

    @TableId
    private Long id;

    /**
     * 学生外键id
     */
    @ApiModelProperty(value = "学生外键id")
    private Long stuId;

    /**
     * 获奖年度
     */
    @ApiModelProperty(value = "获奖年度")
    private String matchYear;

    /**
     * 比赛时间
     */
    @ApiModelProperty(value = "比赛时间")
    private String matchDate;

    /**
     * 比赛地点
     */
    @ApiModelProperty(value = "比赛地点")
    private String matchAddress;

    /**
     * 比赛名称
     */
    @ApiModelProperty(value = "比赛名称")
    private String matchDetail;

    /**
     * 获奖级别（省赛还是国赛）
     */
    @ApiModelProperty(value = "获奖级别（省赛还是国赛）")
    private String matchAwardsLevel;

    /**
     * 获奖排名
     */
    @ApiModelProperty(value = "获奖排名")
    private String matchRank;

    /**
     * 指导教师1
     */
    @ApiModelProperty(value = "指导教师1")
    private String matchTeacher1;

    /**
     * 指导教师2
     */
    @ApiModelProperty(value = "指导教师2")
    private String matchTeacher2;

    /**
     * 指导教师3
     */
    @ApiModelProperty(value = "指导教师3")
    private String matchTeacher3;

    /**
     * 指导教师4
     */
    @ApiModelProperty(value = "指导教师4")
    private String matchTeacher4;

    /**
     * 指导教师5
     */
    @ApiModelProperty(value = "指导教师5")
    private String matchTeacher5;

    /**
     * 比赛扫描件
     */
    @ApiModelProperty(value = "比赛扫描件")
    private String matchFile;

    /**
     * 数据状态（0正常 1停用）
     */
    @ApiModelProperty(value = "数据状态（0正常 1停用）")
    private String status;

    /**
     * 创建人的用户id
     */
    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建人 ID")
    private Long createBy;
    /**
     * 创建时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT)
    @ApiModelProperty(value = "创建时间")
    private Date createTime;
    /**
     * 更新人
     */
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @ApiModelProperty(value = "更新人 ID")
    private Long updateBy;
    /**
     * 更新时间
     */
    @DateTimeFormat(pattern = "yyyy-MM-dd HH:mm:ss")
    @TableField(fill = FieldFill.INSERT_UPDATE)
    @ApiModelProperty(value = "更新时间")
    private Date updateTime;

    /**
     * 删除标志（0代表未删除，1代表已删除）
     */
    @ApiModelProperty(value = "删除标志（0代表未删除，1代表已删除）")
    @JsonIgnore
    private String delFlag;


    /**
     * 需要展示的学生信息
     */
    @ApiModelProperty(value = "学生信息")
    @TableField(exist = false)
    private StudentsBase studentsBase;

}
